{"version":3,"sources":["js/theme.js"],"names":["$","subMenuPositioning","window","width","each","index","subMenu","attr","document","inViewportHorizontal","fn","this","offset","left","outerWidth","scrollLeft","$navToggle","$mainNav","$navToggleText","find","label","event","expanded","text","hidden","newNavState","aria-label","aria-expanded","aria-hidden","data-current-level","preventDefault","on","target","closest","linkLevel","$menuLink","linkMenuId","$activeSubMenu","concat","hasClass","subMenuHidden","parents","scrollAnimationSpeed","click","jQuery","scrollTop","addClass","removeClass","resize","scroll"],"mappings":"CACM,SAAAA,gBAyBF,SALDC,IAhByB,KAsBzBD,EAAAE,QAAAC,SACDH,EAAA,yBAAAI,KAAA,SAAAC,EAAAC,GANEN,EAAEM,GAASC,KAQZC,eACDR,EAAAM,GAAAG,0BAxBDT,EAACU,GAADD,qBAAA,WAUC,OARoBT,EAAEW,MAAMC,SAASC,KADd,IAEFb,EAAEW,MAAMG,YAAW,IACnBd,EAAEE,QAAQa,aAQvBd,EAAAA,QAAAA,SAoBRe,EAAAA,UAAAA,MAAc,WAPd,IAAMC,EAAWjB,EAAE,YAWlBgB,EAAiBhB,EAAA,cATZkB,EAAiBF,EAAWG,KAAK,gBAEvClB,IAaGmB,EAAAA,GAAK,QAAE,SAAAC,GAIRH,IAGCE,EANAE,EAAAA,iBAGD,SAAeC,EAAKhB,KAApB,gBAKCiB,EAAQ,CAHKJ,MAAd,YAKAF,UAAAA,EACAM,QAED,GAVCN,EAAeK,KAAK,WAYpBE,EAAA,CACAL,MAAA,YAFeE,UAAhB,EAIAL,QAAAA,GAECC,EAAAK,KAAA,SAMQP,EAAAT,KAAA,CAAFmB,aAFPD,EAAAL,MAGAO,gBAEDF,EAAAH,WACAL,EAAQV,KAAI,CACXqB,cAAAH,EAAAD,OAEAK,qBAAoBR,IATpBJ,EAcAE,KAAInB,8BACHqB,KAAAA,CAAAA,eAAMS,MATRb,EAASc,GAAG,QAAS,aAAc,SAACV,GAmBnCJ,IAAAA,EAAcjB,EAAAqB,EAAAW,QAAAC,QAAA,cAAEC,EAAAC,EAAA5B,KAAsB2B,cAnBOE,EAqB7CD,EAAA5B,KAAA,aAfM8B,EAAiBrC,EAAC,oBAAAsC,OAAqBF,EAArB,OAiBvBpC,EAAAqB,EAAAW,QAAeO,SAACC,oBADGnB,EAApBS,iBAGAI,EAEDlC,EAAAqB,EAAAW,QAhBIS,QAAQ,cAiBZlC,KAAMmC,eAMJA,EAJD,SAICA,EAJDnC,KAAA,eAXAU,EAASV,KAAK,CAAEsB,qBAAsBK,IAsBtCG,EAAM9B,KAAA,CACNP,eAAEwC,MAQJxC,EAAEE,cAAFyC,MAAiB,WAOfC,OAND5C,EAAA,aAAc6C,QACb7C,CADD6C,UAEO,GAPR,MA7HD,IAG8B,IAmHxB7C,EAAEE,QAAQ2C,YACb7C,EAAE,gBAAgB8C,SAAS,WAE3B9C,EAAE,gBAAgB+C,YAAY,aAIhC/C,EAAEE,QAAQ8C,OAAO,WAChB/C,MAGDD,EAAEE,QAAQ+C,OAAO,WA9HY,IA+HxBjD,EAAEE,QAAQ2C,YACb7C,EAAE,gBAAgB8C,SAAS,WAE3B9C,EAAE,gBAAgB+C,YAAY,aArI3B,CAwIHH","file":"js\\theme.min.js","sourcesContent":["/* global jQuery */\r\nvoid (function themeStart($) {\r\n\t'use strict';\r\n\r\n\tconst backToTopThresholdPx = 300;\r\n\tconst $desktopBreakpoint = 1280;\r\n\r\n\t$.fn.inViewportHorizontal = function inViewportHorizontal() {\r\n\t\tconst elementPadding = 1.5;\r\n\t\tconst elementLeft = $(this).offset().left;\r\n\t\tconst elementWidth = $(this).outerWidth(true);\r\n\t\tconst viewportLeft = $(window).scrollLeft();\r\n\r\n\t\treturn (\r\n\t\t\telementLeft + elementWidth * elementPadding <=\r\n\t\t\tviewportLeft + $(window).width()\r\n\t\t);\r\n\t};\r\n\r\n\tfunction subMenuPositioning() {\r\n\t\tif ($(window).width() > $desktopBreakpoint) {\r\n\t\t\t$('ul.menu.menu__submenu').each((index, subMenu) => {\r\n\t\t\t\t$(subMenu).attr(\r\n\t\t\t\t\t'data-visible',\r\n\t\t\t\t\t$(subMenu).inViewportHorizontal()\r\n\t\t\t\t);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t$(document).ready(() => {\r\n\t\t// Global variables\r\n\t\tconst $mainNav = $('#siteNav');\r\n\t\tconst $navToggle = $('#navToggle');\r\n\t\tconst $navToggleText = $navToggle.find('.toggle-text');\r\n\r\n\t\tsubMenuPositioning();\r\n\r\n\t\t// When clicking the main nav toggle button...\r\n\t\t$navToggle.on('click', (event) => {\r\n\t\t\tevent.preventDefault();\r\n\r\n\t\t\t// Find initial nav state\r\n\t\t\tconst navIsHidden = $mainNav.attr('aria-hidden') === 'true';\r\n\r\n\t\t\t// Find what the current state of nav should be\r\n\t\t\tlet newNavState;\r\n\t\t\tif (navIsHidden) {\r\n\t\t\t\tnewNavState = {\r\n\t\t\t\t\tlabel: 'Hide Menu',\r\n\t\t\t\t\texpanded: true,\r\n\t\t\t\t\thidden: false,\r\n\t\t\t\t};\r\n\t\t\t\t$navToggleText.text('Close');\r\n\t\t\t} else {\r\n\t\t\t\tnewNavState = {\r\n\t\t\t\t\tlabel: 'Show Menu',\r\n\t\t\t\t\texpanded: false,\r\n\t\t\t\t\thidden: true,\r\n\t\t\t\t};\r\n\t\t\t\t$navToggleText.text('Menu');\r\n\t\t\t}\r\n\r\n\t\t\t// Updating new main nav state\r\n\t\t\t$navToggle.attr({\r\n\t\t\t\t'aria-label': newNavState.label,\r\n\t\t\t\t'aria-expanded': newNavState.expanded,\r\n\t\t\t});\r\n\t\t\t$mainNav.attr({\r\n\t\t\t\t'aria-hidden': newNavState.hidden,\r\n\t\t\t\t'data-current-level': 0,\r\n\t\t\t});\r\n\r\n\t\t\t// Hide all open menus\r\n\t\t\t$mainNav\r\n\t\t\t\t.find('.menu[aria-hidden=\"false\"]')\r\n\t\t\t\t.attr({ 'aria-hidden': true });\r\n\t\t});\r\n\r\n\t\t// When clicking a link in the main nav...\r\n\t\t$mainNav.on('click', '.menu-link', (event) => {\r\n\t\t\t// Find the clicked link, menu level of the clicked link, and the menu that the link is linking to\r\n\r\n\t\t\tconst $menuLink = $(event.target).closest('.menu-link');\r\n\t\t\tlet linkLevel = $menuLink.attr('data-level');\r\n\t\t\tconst linkMenuId = $menuLink.attr('data-page');\r\n\t\t\tconst $activeSubMenu = $(`.menu[data-page=\"${linkMenuId}\"]`);\r\n\r\n\t\t\tif ($(event.target).hasClass('submenu-toggle')) {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tlinkLevel = $(event.target)\r\n\t\t\t\t\t.parents('.menu-item')\r\n\t\t\t\t\t.attr('data-level');\r\n\t\t\t}\r\n\r\n\t\t\t// Find the initial nav state of the linked menu\r\n\t\t\tconst subMenuHidden = $activeSubMenu.attr('aria-hidden') === 'true';\r\n\r\n\t\t\t// Update the active menu level of the main nav\r\n\t\t\t$mainNav.attr({ 'data-current-level': linkLevel });\r\n\r\n\t\t\t// Update the active submenu's visibility\r\n\t\t\t$activeSubMenu.attr({\r\n\t\t\t\t'aria-hidden': !subMenuHidden,\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\t// scroll body to 0px on click\r\n\t\tconst scrollAnimationSpeed = 800;\r\n\t\t$('#backToTop').click(() => {\r\n\t\t\t$('body,html').animate(\r\n\t\t\t\t{\r\n\t\t\t\t\tscrollTop: 0,\r\n\t\t\t\t},\r\n\t\t\t\tscrollAnimationSpeed\r\n\t\t\t);\r\n\t\t\treturn false;\r\n\t\t});\r\n\r\n\t\tif ($(window).scrollTop() > backToTopThresholdPx) {\r\n\t\t\t$('.back-to-top').addClass('visible');\r\n\t\t} else {\r\n\t\t\t$('.back-to-top').removeClass('visible');\r\n\t\t}\r\n\t});\r\n\r\n\t$(window).resize(() => {\r\n\t\tsubMenuPositioning();\r\n\t});\r\n\r\n\t$(window).scroll(() => {\r\n\t\tif ($(window).scrollTop() > backToTopThresholdPx) {\r\n\t\t\t$('.back-to-top').addClass('visible');\r\n\t\t} else {\r\n\t\t\t$('.back-to-top').removeClass('visible');\r\n\t\t}\r\n\t});\r\n})(jQuery);\r\n"]}